Source tree


contrib

Code contributed by the community. This code is usually not maintained by the developers but by the respective community contributors.

direct

Mid-level tools/subsystems which supports show development, and scene-composition. It contains pretty much all of Panda’s Python code with some C++.Includes code which sets up and initializes PANDA (using Python wrapper functions which call low-level C++ counterparts).Includes python modules for mid-level show coding systems: actors, directdevices (high-level wrappers around low-level input devices such as joysticks, magnetic trackers, etc.), finite state machines, 2D gui elements, intervals, tasks, and the DIRECT tk widget classes and panels.

dmodels

Similar to /models but processed by makepanda, models that still need to be converted to .egg at build time

Their origin is probably Disney

dtool

This tree contains base classes and core functionality that the other Panda libraries rely on, such as basic threading constructs, file reading/writing constructs and the configuration system. It also contains interrogate, which is used to generate Python bindings for Panda3D.

makepanda

Panda3D building system.

models

Contains some free models for use in samples. They origin is probably CMU

panda

Low-level 3D graphics engine code. Primarily C++.

Includes code for graphics/scene graph setup/manipulation/rendering, graphic state guardians (interfaces to OpenGL, Direct X, tinypanda(based on TinyGL)), and source code for many PANDA systems: animation, audio, gui, input devices, particles, physics, shaders, etc.

android

-update me-

androiddisplay

-update me-

audio

-update me-

audiotraits

-update me-

awesomium

-update me-

bullet

Panda has classes that represent underlying bullet objects, that basically wrap around it and integrate it with Panda classes and structures.

For instance, there’s BulletRigidBodyNode, which is a class that extends a PandaNode and as such can be placed inside the panda scene graph. However, it stores a btRigidBody object from bullet, and exposes methods that are wrappers around that underlying Bullet object.

cftalk

connected frame protocol

chan

Animation channels. This defines the various kinds of AnimChannels that may be defined, as well as the MovingPart class which binds to the channels and plays the animation. This is a support library for char, as well as any other libraries that want to define objects whose values change over time.

char

-update me-

cocoadisplay

-update me-

collada

-update me-

collide

This package contains the classes that control and detect collisions

configfiles

This package contains the housekeeping and configuration files needed by things like attach, and emacs.

cull

This package contains the Cull Traverser. The cull traversal collects all state changes specified, and removes unneccesary state change requests.It also does all the depth sorting for proper alphaing.

device

Device drivers, such as mouse and keyboard, trackers, etc…The base class for using various device APIs is here.

dgraph

Defines and manages the data graph, which is the hierarchy of devices, tforms, and any other things which might have an input or an output and need to execute every frame.

display

Abstract display classes, including pipes, windows, channels, and display regions.

distort

-update me-

doc

Documentation Panda3D developers considered that doesn’t fit in any of the packages. For contents please see the part 2 (“other”) of this manual.

downloader

Tool to allow automatic download of files in the background.

downloadertools

-update me-

dxgsg9

Handles all communication with the DirectX backend, and manages state to minimize redundant state changes.

dxml

-update me-

egg

A.k.a. the “egg library”, this reads, writes, and manipulates egg files. It knows nothing about the scene graph structure in the rest of the player; it lives in its own little egg world.

egg2pg

A.k.a. the “egg loader”, this converts the egg structure read from the egg library, above, to a scene graph structure, suitable for rendering.

egg2pg reads egg file and converts it to a Panda scene graph. ie. in-memory structure of PandaNode etc.

I’m assuming “pg” stands for “panda graph”.

Also, technically, the “egg” tree reads the .egg file into in-memory EggData structures, and egg2pg converts those to scene graph structures. When egg2pg converts that into scene graph structures egg files from memory get deleted. If you want to keep them around, you can use the lower-level interfaces yourself.

egldisplay

-update me-

event

Tools for throwing, handling and receiving events.

express

-update me-

ffmpeg

-update me-

framework

A simple, stupid framework around which to write a simple, stupid demo program. Handy for quickly writing programs that can open a window and display the OmniTriangle.

gles2gsg

-update me-

glesgsg

-update me-

glgsg

Handles all communication with the GL backend, and manages state to minimize redundant state changes.

glstuff

-update me-

glxdisplay

X windows display classes that replace Glut functionality.

gobj

Graphical non-scene-graph objects, such as textures and geometry primitives.

grutil

-update me-

gsgbase

Base GSG class defined to avoid cyclical dependency build.

iphone

-update me-

iphonedisplay

-update me-

linmath

Linear algebra library.

mathutil

Math utility functions, such as frustum and plane

movies

-update me-

nativenet

-update me-

net

Net connection classes

ode

-update me-

osxdisplay

-update me-

pandabase

-update me-

parametrics

-update me-

particlesystem

Tool for doing particle systems. Contains various kinds of particles, emiters, factories and renderers.

pgraph

-update me-

pgraphnodes

-update me-

pgui

-update me-

physics

Base classes for physical objects and forces. Also contains the physics manager class.

physx

-update me-

pipeline

-update me-

pnmimage

Reads and writes image files in various formats, by using the pnm and tiff libraries. PNMImage class manages reading and writing image files from disk.

One of the properties of PNMImage is that all images are laid out (almost) the same way in memory, regardless of their properties. This makes it very easy to write a class like PNMPainter, which can paint equally well on grayscale, grayscale/alpha, 24-bit, 32-bit, or 64-bit images.

pnmimagetypes

-update me-

pnmtext

-update me-

pstatclient

-update me-

putil

-update me-

recorder

-update me-

rocket

-update me-

skel

-update me-

speedtree

-update me-

testbed

C test programs, that primarily link with framework.

text

Package for generating renderable text using textured polygons.

tform

Data transforming objects that live in the data graph and convert raw data (as read from an input device, for instance) to something more useful.

tinydisplay

-update me-

vision

-update me-

vrpn

Defines the specific client code for interfacing to the VRPN API.

wgldisplay

Windows OpenGL specific display classes.

windisplay

-update me-

x11display

-update me-

pandatool

This tree contains various utility tools that are used to manipulate model files and convert models from other formats to Panda3D’s .egg format (and vice versa).

samples

Contains samples to demonstrate how Panda3D works.